There has been a computer system in which computers such as load distribution servers cooperate with one another. Non-Patent Document 1 discloses an example of a distribution infrastructure system as this type of computer system. This distribution infrastructure system is called “CAN”.
As shown in FIG. 21, this distribution infrastructure system includes: zone dividing servers that are a zone dividing server 1 (1100) from and into which servers can read and write data, a zone dividing server 2 (1200) from and into which servers can read and write data, a zone dividing server 3 (1300) from and into which servers can read and write data, a zone dividing server 4 (1400) from and into which servers can read and write data, and a zone dividing server 5 (1500) from and into which servers can read and write data; and a network 700 that connects the zone dividing servers 1 (1100) through 5 (1500) to one another. The network 700 may further include a zone dividing server having the same functions as the zone dividing servers 1 (1100) through 5 (1500).
The zone dividing servers 1 (1100) through 5 (1500) have the same components as one another. For example, the zone dividing server 1 (1100) includes a node finding unit 1110, a zone dividing unit 1120, a communicating unit 1130, a neighbor managing unit 1140, a problem solving unit 1150, and a reconstructing unit 1160. The node finding unit 1110 is used to find the existing other zone dividing servers and the likes when the zone dividing server joins the distribution infrastructure system, or to find another zone dividing server when the other zone dividing server joins the distribution infrastructure system, or the like.
After joining the distribution infrastructure system, the zone dividing unit 1120 is used to divide the zone of data to be read or written by servers. For example, when the zone dividing server 1 is assigned to reading and writing all data, the zone dividing unit 1120 serves to divide the zone, so that the zone dividing server 1 is assigned to reading and writing data 0% to 50% in humidity, and the zone dividing server 2 is assigned to reading and writing data of 51% to 100% in humidity.
When a zone is divided, the communicating unit 1130 functions to notify the other zone dividing servers of the division. While a two-dimensional space is divided and the dividing servers in the CAN is assigned to the respective zone, the neighbor managing unit 1140 manages the IP (Internet Protocol) address information about neighboring zone dividing servers, and the information about which zone dividing servers are in the neighborhood of other dividing servers in the two-dimensional space.
When a zone dividing server leaves the system, the problem solving unit 1150 determines which one of the remaining zone dividing servers is assigned to the zone to which the server that has left the system used to be assigned. After a few servers have left the system, the reconstructing unit 1160 reconstructs zone dividing servers so that the zone dividing server is assigned to a zone that is one branch of a binary tree.
The distribution infrastructure system having such a structure operates in the following manner (see FIG. 22). Each existing zone dividing server is assigned to a zone in a two-dimensional space, and is used to read the data stored in the zone when data to be put into that zone is written from outside. The zones are divided and managed on a two-dimensional map.
When a new zone dividing server 5 (1500) joins the network formed with the existing four zone dividing servers, the node finding unit 1510 first needs to find one of the four nodes. This can be done by providing the IP address of one of the zone dividing servers in the existing network as a configuration file.
A check is then made to determine which zone in the distribution infrastructure system can be divided. As can be seen from FIG. 22, the zone of the zone dividing server 4 can be divided in this case. The zone dividing unit 1420 of the zone dividing server 4 (1400) divides the zone, and the communicating unit 1530 notifies that the new zone dividing server 5 has joined the network. The zone dividing server 4 (1400) causes the neighbor managing unit 1440 to update its neighboring zone dividing servers, and the servers neighboring the neighboring zone dividing servers.
When a node leaves the CAN, the written data is transferred to another node. At this point, if the written data can be appropriately transferred to one of the neighboring nodes, and the one node forms one zone, the written data is transferred to such a node. If such a node does not exist, the neighboring node having the smallest zone area takes over both its own zone and the left zone. When a zone dividing server leaves, a neighboring node takes over the zone. However, in determining which node is to take over the zone, the candidate nodes are the nodes neighboring the node that has left, and therefore, the candidate nodes are the node that neighbors the own node but has left, and the zone dividing server neighboring the node that has left.
To perform this takeover, the neighbor managing unit needs to manage the information about the neighboring nodes and the information about the nodes neighboring the neighboring nodes. As a result, the amount of information to be managed by the neighbor managing unit in each one node becomes larger. The zones may be divided as shown in FIG. 23, and may be managed by zone dividing servers 1 through 11.
If the zone dividing server 9 leaves, the problem solving unit functions, and the node having the smallest area assigned thereto among the nodes neighboring the zone dividing server 9 takes over. In this case, there is a possibility that any of the zone dividing servers 6, 7, 10, and 11 takes over. However, if the zone dividing server 6 takes over, reconstruction is necessary. This is because the situation prior to the takeover is like the situation represented by a binary tree shown in FIG. 24. If the node 6 manages both the zones of 6 and 9, the load on the node 6 becomes undesirably heavy, since the nodes 6 and 9 are divided at the first branching of the binary tree, and the node 6 appears at the two ends of the binary tree.
In an example operation by the reconstructing unit in this case, the node 11 is assigned to the zones of 10 and 11, and the node 10 takes over the zone originally assigned to 9. However, performing reconstruction causes the following problem. While a reconstructing operation is being performed, writing and reading cannot be properly performed on the zones related to the reconstruction, resulting in a practical problem.
In a case where an algorithm of recovery from a problem is applied, the zones managed by one zone dividing server include more than one end in the tree structure map, which is problematic in management. Therefore, if a recovery algorithm is applied when a problem is caused in a zone dividing server in the distribution infrastructure system, it is necessary to reconstruct the entire zones on a regular basis.
If writing or reading is performed on a zone related to reconstruction while the reconstruction is being performed, the consistency is lost. Therefore, writing and reading cannot be performed during the reconstruction, and there is a delay in response time to the writing and reading when a problem is caused.
Also, when a zone dividing server leaves, a neighboring node takes over the zone. In determining which node should take over the zone, the candidate nodes are the node that was in the neighborhood of the own server and has left, and the zone dividing server in the neighborhood of the node that has left. Therefore, it is necessary to transfer the node information to all of those nodes.
Therefore, each zone dividing server in the distribution infrastructure system needs to hold the information about the zone distribution servers in the neighborhood of the own server, and the information about the zone distribution servers in the neighborhood of the neighboring zone dividing servers. As a result, each component in the distribution infrastructure system needs to manage a large amount of information. If a change is made to a zone dividing server, it is necessary to notify a large number of zone dividing servers of the change, and the amount of communications increases.
Meanwhile, Patent Document 1 discloses a load distribution method by which a server with high access frequency is detected, and content is transferred to servers with smaller loads. However, Patent Document 1 merely discloses a load distribution method for simply transferring loads, and does not teach a method for coping with the above described problems of a delay in response time and an increase in the amount of communications. Patent Document 2 discloses a network construction method by which a switcher determines to which and from which an object should be connected, and transmits a switching signal to the object to change links. However, the switcher still keeps a link, and the invention was not developed to cope with a case where a physical problem is caused in the switcher.    [Non-Patent Document 1] Sylvia Ratnasamy, et al., “A Scalable Content-Address Network”, http://www.sigcomm.org/sigcomm2001/p13-ratnasamy.pdf, Aug. 27, 2001    [Patent Document 1] Japanese Laid-Open Patent Publication No. 2002-278823    [Patent Document 2] Japanese Laid-Open Patent Publication No. 2005-252596